﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace QLHXNK
{
    public partial class FrmDoiMatKhau : Form
    {
        public FrmDoiMatKhau()
        {
            InitializeComponent();
            lblErrorNotice.Visible = false;
        }

        private void FrmDoiMatKhau_Load(object sender, EventArgs e)
        {
             
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private bool checkInputs()
        {
            if (txtMatKhauCu.Text == "" || txtMatKhauMoi.Text == "" || txtXacNhanMatKhauMoi.Text == "")
            {
                lblErrorNotice.Visible = true;
                lblErrorNotice.Text = "Chưa đủ thông tin";
                lblErrorNotice.BackColor = Color.Red;
                return false;
            }

            //Kiểm tra mật khẩu cũ:
            String strSQL = String.Format("SELECT Username FROM [User] WHERE Username = '{0}' AND Password = '{1}'", MainForm.TenDangNhap.Replace("'", "''"), txtMatKhauCu.Text.Replace("'", "''"));
            DataTable table = MyDataTransfer.executeQueryCommand(strSQL);
            String error = String.Empty;
            if (table == null || table.Rows.Count == 0)
            {
                error = "Sai mật khẩu cũ\n";
            }

            //Xác nhận mật khẩu mới:
            if (!txtMatKhauMoi.Text.Equals(txtXacNhanMatKhauMoi.Text))
            {
                error += "Nhập lại mật khẩu mới sai";
            }

            if (error != String.Empty)
            {
                lblErrorNotice.Visible = true;
                lblErrorNotice.Text = error;
                lblErrorNotice.BackColor = Color.Red;
                return false;
            }

            return true;
        }

        private void doChangePassword()
        {
            String strSQL = String.Format("UPDATE  [User] SET [Password] = '{0}' WHERE (Username = '{1}') AND ([Password] = '{2}')", txtMatKhauMoi.Text.Replace("'", "''"), MainForm.TenDangNhap.Replace("'", "''"), txtMatKhauCu.Text.Replace("'", "''"));
            int noAffectedRows = MyDataTransfer.executeNonQueryCommand(strSQL);
            if (noAffectedRows == -1)
            {
                lblErrorNotice.Visible = true;
                lblErrorNotice.Text = "Lỗi kết nối";
                lblErrorNotice.BackColor = Color.Red;
            }

            if (noAffectedRows == 0)
            {
                lblErrorNotice.Visible = true;
                lblErrorNotice.Text = "Chưa thể cập nhật mật khẩu mới. Xin thử lại";
                lblErrorNotice.BackColor = Color.Red;
            }

            if (noAffectedRows == 1)//Đổi mật khẩu thành công
            {
                MessageBox.Show("Đổi mật khẩu thành công");
                this.Close();
            }
        }

        private void btnDoiMatKhau_Click(object sender, EventArgs e)
        {
            if (checkInputs() == false)
                return;
              
            //Change password:
            doChangePassword();
        }

        private void txtMatKhauCu_TextChanged(object sender, EventArgs e)
        {
            lblErrorNotice.Visible = false;
        }

        private void txtMatKhauMoi_TextChanged(object sender, EventArgs e)
        {
            lblErrorNotice.Visible = false;
        }

        private void txtXacNhanMatKhauMoi_TextChanged(object sender, EventArgs e)
        {
            lblErrorNotice.Visible = false;
        }
    }
}